Лекція №7
З курсу: «Застосування засобів ООП в лінгвістичних задачах»
5. Функції для роботи з стрічками в Delphi.
Результатом стрічкового виразу є стрічка символів. Для стрічок можна
виконувати операцію +, яка виконує об’єднання (конкатенацію) стрічок, а
також настіпні функції:
• Length (S): integer — визначення довжени стрічки S;
procedure TForm1.Button1Click(Sender:
TObject);
var
i,n: Integer;
s0,s1,s2: string;
begin
s0 := Edit1.Text;
//s1 := Edit2.Text;
n:= Length(s0);
//Label1.Caption := IntToStr(n);
Memo1.Lines.Add(IntToStr(n));
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
Label1.Caption := '';
for i := 1 to Length(Edit1.Text) do
begin
try
Label1.Caption := Label1.Caption + IntToHex(Edit1.Text[i],2) + ' ';
except
Beep;
end;
end;
end;
• Copy(S; Index, Count: Integer): String—
виділення з стрічки S підстрічки довжиною count
символів. Підстрічка виділяє, починаючи з символа
в позиции index;
procedure TForm1.Button1Click(Sender:
TObject);
var
i,n: Integer;
s0,s1: string;
begin
s0 := Edit1.Text;
s1 := Copy(s0,9,6);
//Label1.Caption := IntToStr(n);
Memo1.Lines.Add(s1);
end;
• Pos(Substr: String; S: String): Integer — Визначення
позиції(номера) символа, починаючи з якого підстрічка substr входить
в стрічку s, при цьому шукає перше входження. Якщо підстрічка не
знайдена, то повертається нуль и процедури:
procedure TForm1.Button1Click(Sender: TObject);
var
i,n: Integer;
s0,s1: string;
begin
s0 := Edit1.Text;
s1 := Edit2.Text;
n:= Pos(s1,s0);
//Label1.Caption := IntToStr(n);
Memo1.Lines.Add(IntToStr(n));
end;
• Insert(Source: String; var S: String; Index: Integer) — вставка
стрічки source в строку S, починаючи з позиції Index;
procedure TForm1.Button1Click(Sender:
TObject);
var
i,n: Integer;
s0,s1,s2: string;
begin
s0 := Edit1.Text;
s1 := Edit2.Text;
insert(s0,s1,9);
//Label1.Caption := IntToStr(n);
Memo1.Lines.Add(s1);
end;
• Delete(var S: String; Index, Count:
Integer) — видалення з стрічки S підстрічки символів довжиною Count,
починаючи з позиції Index;
procedure TForm1.Button1Click(Sender:
TObject);
var
i,n: Integer;
s0,s1,s2: string;
begin
s0 := Edit1.Text;
//s1 := Edit2.Text;
Delete(s0,9,6);
//Label1.Caption := IntToStr(n);
Memo1.Lines.Add(s0);
end;
• Val(S; var V; var Code: Integer) — перетворення стрічки S в стрічку
ЧИСЛО V. Тип числа залежить від представлення числа в стрічці.
Параметр code повертає код результата операції, якщо операція
виконан успішно, то повертається значення нуль;
procedure TForm1.Button1Click(Sender: TObject);
var
i,n: Integer;
s0,s1,s2: string;
begin
s0 := Edit1.Text;
val(s0,n,i);
Memo1.Lines.Add(IntToStr(n));
end;
• Str(x [: width [: Decimals ]]; var s) — перетворення значення
чисельного виразу х в стрічку s.
procedure TForm1.Button1Click(Sender: TObject);
var
i,n: Integer;
s0,s1,s2: string;
n1:real;
begin
// Str(610:2,s0);
// Memo1.Lines.Add(s0);
// s0 := Edit1.Text;
n1:= 610.354;
Str(n1:2,s0);
Str(n1:5:2,s0);
Memo1.Lines.Add(s0);
end;
• Concat(s1, s2, s3, ….sm) – Стрічки s1+s2+s3+ ….+sm
записуються одна за одною. Якщо результат перевищує 255
символів, стрічка закінчуеться(обривається).
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
n1: Real;
s0,s1,s2,s3: String;
begin
s0 := Edit1.Text;
s1 := Edit2.Text;
s2 := Edit3.Text;
s3 := Concat(s0,s1,s2);
Memo1.Lines.Add(s3);
end;
Крім перерахованих підпрограм, велика кількість процедур і функцій
для работы з стрічками міститься в модуле Sysutiis. Це наступні функції:
• IntToStr (Value: integer): string —
перетворення значення цілочисленного виразу
value в стрічку;
procedure TForm1.Button1Click(Sender: TObject)...